package com.ywu.bpmn.form.service.data;

import com.ywu.bpmn.form.service.dto.YwuFormDefinitionDto;
import com.ywu.bpmn.form.service.dto.YwuFormDefinitionVersionDto;
import com.ywu.bpmn.form.service.entity.YwuFormDefinitionEntity;
import com.ywu.bpmn.form.service.entity.YwuFormDefinitionVersionEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName YwuFormDefinitionRepository
 * @Description TODO
 * @Author GroundDemo
 * @Date 2025/4/20 14:54
 * @Version 1.0
 **/
@Mapper
public interface YwuFormDefinitionRepository {

    void insert(@Param("model")YwuFormDefinitionEntity entity);

    void update(@Param("model") YwuFormDefinitionEntity entity);

    void updateAll(@Param("model") YwuFormDefinitionEntity entity);

    void updateFormJson(@Param("model") YwuFormDefinitionEntity entity);

    void delete(@Param("model") YwuFormDefinitionEntity entity);

    YwuFormDefinitionEntity getEntity(@Param("model") YwuFormDefinitionEntity entity);

    YwuFormDefinitionEntity getEntityNoJson(@Param("model") YwuFormDefinitionEntity entity);

    int queryCount(@Param("model") YwuFormDefinitionDto dto);

    List<YwuFormDefinitionEntity> queryPageList(@Param("model") YwuFormDefinitionDto dto);

    void insertVersion(@Param("model") YwuFormDefinitionVersionEntity entity);

    void updateVersionByVersion(@Param("model") YwuFormDefinitionVersionEntity entity);

    void updateVersionById(@Param("model") YwuFormDefinitionVersionEntity entity);

    void deleteVersionByVersion(@Param("model") YwuFormDefinitionVersionEntity entity);

    YwuFormDefinitionVersionEntity getVersionEntity(@Param("model") YwuFormDefinitionVersionEntity entity);

    YwuFormDefinitionVersionEntity getVersionEntityNoJson(@Param("model") YwuFormDefinitionVersionEntity entity);

    List<YwuFormDefinitionVersionEntity> queryVersionList(@Param("model")YwuFormDefinitionVersionDto dto);

    List<YwuFormDefinitionVersionEntity> queryDraftVersionList(@Param("list") List<String> ids);

}
